#pragma once
#include <list>

namespace MyQueue
{
	template<class T>
	class Queue
	{
	public:
		void push(const T& t)
		{
			queue.push_back(t);
		}
		void pop()
		{
			queue.pop_front();
		}
		const T& back()
		{
			return queue.back();
		}
		const T& front()
		{
			return queue.front();
		}
		bool empty()const
		{
			return queue.empty();
		}
		size_t size()const
		{
			return queue.size();
		}
	private:
		std::list<T> queue;
	};
}
